import myAxios from '../myAxios/myAxios.js';
import myAxios28 from '../myAxios/myAxios28.js';
import myArr from '../myAxios/myArr.js';
let { GetNumber } = myArr;

let GetNotClearBuyCountTable = async function (matnrString) {
	try {

		const testMatnr = "E0010108X";
		// 1. 从SAP获取原始数据（替换为您的实际SAP调用函数和参数）
		const sapData = (await myAxios.getSap("SAP获取未完成采购订单（根据物料号）", matnrString + "🈹Q902", "9911")).TableSet['返回表'];

		// 2. 使用reduce进行分组和求和
		const groupedMap = sapData.reduce((acc, curr) => {
			const key = curr.EMATN; // 分组键（物料号）

			// 计算当前行的未清数量
			const MENGE = GetNumber(curr.MENGE);
			const WEMNG = GetNumber(curr.WEMNG);
			const wqcgCount = MENGE - WEMNG;

			// 分组逻辑
			if (!acc.has(key)) {
				// 如果该物料号还未分组，初始化一个新对象
				acc.set(key, {
					['MATNR']: key,        // 使用常量或直接写 'MATNR'
					['WQCG_ALL']: 0        // 使用常量或直接写 'WQCG_ALL'
				});
			}

			// 累加未清数量到对应分组
			acc.get(key)['WQCG_ALL'] += wqcgCount;

			return acc;
		}, new Map()); // 初始值为一个空的Map

		// 3. 将Map转换为数组并返回
		const table = Array.from(groupedMap.values());
		const rowsSS = table.filter(row => row.MATNR === testMatnr);
		console.log('GetNotClearBuyCountTable :>> ', table);
		return table;
	} catch (error) {
		console.error("处理数据时发生错误:", error);
		throw error; // 或返回一个空数组 []，根据需要决定
	}
};


export {
	GetNotClearBuyCountTable,
};